<section id = "doc_best-practise" data-view = "true" data-view-title = "最佳实践">
	<header>
		<a class = "nav-back" data-view-rel = ":back"></a>
		<span>最佳实践</span>
		<a class = "menu"></a>
	</header>
	<div class = "body">
		<p>View.js建议开发者在开发应用时，区分功能特性的隶属级别：视图级别或页面级别，以妥善安置相关脚本的工程位置。</p>
		<p>如果开发者对视图的功能定义较为合理，则可以很方便的利用构建工具，如gulp.js等将视图动态构建至多个界面中以达到复用视图，减少开发工作量的目的。</p>
		<p>对于单个视图的工程化组织，View.js建议开发者按照实际需要，分别建立<span class = "code js">config.xx.js</span>，<span class = "code js">define.xx.js</span>，<span class = "code js">init.xx.js</span>，<span class = "code js">action.xx.js</span>等文件，以提升工程的可维护程度。各个文件的前缀含义分别为：</p>
		<ol>
			<li>
				<span class = "code js">config.xx.js</span>
				<p>约定以"config."前缀开头定义的文件，用于存储视图的默认配置；</p>
			</li>
			<li>
				<span class = "code js">define.xx.js</span>
				<p>约定以"define."前缀开头定义的文件，用于存储视图下多个脚本都会用到的方法或变量等，以达到复用的目的。</p>
				<p>虽然开发者可以将复用的方法或变量定义至window中，但这样无疑会提升变量污染的可能性。因此，View.js建议开发者将这些方法定义至相关视图的上下文中，以降低这样的风险；</p>
				<p>开发者可以使用API：<span class = "code js">view.config.get(configItemName).setValue()</span>来设置配置取值，使用API：<span class = "code js">view.config.get(configItemName).getValue()</span>来获取取值；</p>
			</li>
			<li>
				<span class = "code js">init.xx.js</span>
				<p>绝大多数视图需要在视图就绪，视图进入，或视图离开时执行特定的初始化动作，如：动态布局，查询接口或重置视图等。View.js建议开发者将此类动作以"init."前缀来定义；</p>
			</li>
			<li>
				<span class = "code js">action.xx.js</span>
				<p>约定以"action."前缀开头定义的文件，用于置放用户参与的动作脚本。如：单次触摸、双击触摸以及其它手势或拖动等。</p>
				<p>在加载次序上，View.js建议按照如下顺序加载视图的各个脚本：</p>
				<ol>
					<li><span class = "code js">define.xx.js</span></li>
					<li><span class = "code js">config.xx.js</span></li>
					<li><span class = "code js">init.xx.js</span></li>
					<li><span class = "code js">action.xx.js</span></li>
				</ol>
				<p>此时，开发者需要确保文件之间的引用关系，谨防循环引用。</p>
			</li>
			<li>

			</li>
		</ol>
	</div>
	<footer><div class = "btn next">下一节</div></footer>
</section>